
package Modelo;

import java.io.Serializable;
import java.awt.*;


public abstract class Figuras implements Serializable {

	private static final long serialVersionUID = 11L;

	public Integer id, x,y,alto,ancho,vida,xAnterior,yAnterior;
	public boolean estado;
	Color color;


public Figuras(){}

protected Figuras(Integer id0, Integer x0,Integer y0,Integer w0,Integer h0,Color c,Integer life, Boolean status){
		 id=id0;
                 x=x0;
		 y=y0;
		 alto=h0;
		 ancho=w0;
		 color=c;
		 vida=life;
		 estado=status; //si se dibuja o no
		 xAnterior=x;
		 yAnterior=y;
		
	    }

public abstract void dibujar(Graphics g);

//TODO:definir todas las posibles colisiones
public abstract void colision(Figuras figura);
public abstract void colision(Autito movil);
public abstract void colision(Pared pared);
public abstract void colision(Policia policia);
public abstract void colision(Base base);
public abstract void colision(Destino destino);
public abstract void colision(Semaforo semaforo);



public Rectangle rect(){

    Rectangle r=new Rectangle(x,y,ancho,alto);
    return r;
}

public String getID(){
    /* devuelve clase e identificador de la figura */
    return this.getClass().getName() + ' ' + this.id.toString();
}

 public  void back() {
        /* Este metodo intercambia los valores pasados con los presentes */
            
        
            Integer x0=x; //guardo posiciones actuales
            Integer y0=y;
	
            
            /* a = a - (a-b) => a = b */
            /*
            policia.x-=(policia.x-policia.xAnterior); 
            policia.y-=(policia.y-policia.yAnterior);
             */
            
            this.x = this.xAnterior;
            this.y = this.yAnterior;
            
            
            this.xAnterior=x0; //posiciones antes del choque
            this.yAnterior=y0;

        
        
    }


}

